<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Auth extends General {

    public $template = 'basic';
    
    public function before() {        
        return parent::before();
    }
    
    public function action_index() {
        $data     = array ();
        
        $login    = '';
        $password = '';
        
        // Экземпляр класса Auth (instance переводится с англ., как "экземпляр класса")
        $auth = Auth::instance();
        
        // Выберем действие для пользователя (1-если залогинен, 2-если не залогинен)
        $logged_in  = false;
        $logged_err = false;
        
        // 1) Если пользователь залогинен
        if ($auth -> logged_in()) {
            $logged_in = true;
            Request::initial()->redirect('welcome');
        }
        // 2) Если не залогинен
        else {
            if (isset($_POST['authorization_form_submit'])) {
                
                // получаем логин и пароль с формы
                $login    = Arr::get($_POST, 'authorization_form_login',    '');
                $password = Arr::get($_POST, 'authorization_form_password', '');
                
                // логинимся
                $auth -> login($login, $password);
                
                // Если пользователь залогинелся средиректим его ...
                if ($auth -> logged_in()) {
                    $logged_in = true;
                    Request::initial()->redirect('welcome');
                }
                else {
                    $logged_err = true;                   
                }
            }    
        }

        
        $data['logged_in']  = $logged_in;        
        $data['logged_err'] = $logged_err;
        
        
        $this -> template -> content = View::factory('auth', $data);
    }
    
    public function action_hpass() {
        $auth = Auth::instance();
        $this -> template -> content = $auth -> hash_password('admin'); 
    }
    
    public function action_logout() {
        $auth = Auth::instance();
        $auth -> logout();
        
        $this -> template -> content = "Разлогинились.";
    }
    
    public function action_registration() {
        $registration_result = false;
        $registration_errors = NULL;
        
        $data = array();
        
        if(isset($_POST['registration_form_submit'])) {
            $email = Arr::get($_POST, 'registration_form_email', '');
            
            $registration = new Model_Registration();
            if($registration -> registration($email)) {
                $registration_result = true;
            }
            else {
                $registration_result = false;
                $registration_errors = $registration -> errors;
            }
            
        }   
        
        $data['registration_result'] = $registration_result;
        $data['registration_errors'] = $registration_errors;
        
        $this -> template -> content = View::factory('registration', $data);    
    }

} // End Welcome
